[INFO] cloning repository https://github.com/alfredomtx/zero2prod
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alfredomtx/zero2prod" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falfredomtx%2Fzero2prod", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falfredomtx%2Fzero2prod'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e274c482f7877e3ddef7f3bb044381915306aa35
[INFO] checking alfredomtx/zero2prod against master#9610dfe5a9a731ced1ea4923ecbd0c57fe367898 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falfredomtx%2Fzero2prod" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/alfredomtx/zero2prod on toolchain 9610dfe5a9a731ced1ea4923ecbd0c57fe367898
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/alfredomtx/zero2prod
[INFO] finished tweaking git repo https://github.com/alfredomtx/zero2prod
[INFO] tweaked toml for git repo https://github.com/alfredomtx/zero2prod written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/alfredomtx/zero2prod already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded actix-web-lab-derive v0.16.0
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.2
[INFO] [stderr]   Downloaded actix-web-flash-messages v0.4.2
[INFO] [stderr]   Downloaded linkify v0.9.0
[INFO] [stderr]   Downloaded wiremock v0.5.14
[INFO] [stderr]   Downloaded validator v0.15.0
[INFO] [stderr]   Downloaded serde_html_form v0.1.1
[INFO] [stderr]   Downloaded actix-session v0.6.2
[INFO] [stderr]   Downloaded blake2 v0.10.5
[INFO] [stderr]   Downloaded arc-swap v1.5.1
[INFO] [stderr]   Downloaded redis v0.21.6
[INFO] [stderr]   Downloaded openssl v0.10.44
[INFO] [stderr]   Downloaded actix-http v3.2.0
[INFO] [stderr]   Downloaded tracing-bunyan-formatter v0.3.3
[INFO] [stderr]   Downloaded deadpool v0.9.5
[INFO] [stderr]   Downloaded actix-web-lab v0.16.9
[INFO] [stderr]   Downloaded tracing-actix-web v0.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e99ce106c98daee890d2ab1202613fe15b6615c31f04e7ca7dfb029de0a9e90c
[INFO] running `Command { std: "docker" "start" "-a" "e99ce106c98daee890d2ab1202613fe15b6615c31f04e7ca7dfb029de0a9e90c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e99ce106c98daee890d2ab1202613fe15b6615c31f04e7ca7dfb029de0a9e90c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e99ce106c98daee890d2ab1202613fe15b6615c31f04e7ca7dfb029de0a9e90c", kill_on_drop: false }`
[INFO] [stdout] e99ce106c98daee890d2ab1202613fe15b6615c31f04e7ca7dfb029de0a9e90c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bb5d4ffff9ca5dbfc7bcd54dffa5661dfb50b93b4fbf1fe92ec93566efd89424
[INFO] running `Command { std: "docker" "start" "-a" "bb5d4ffff9ca5dbfc7bcd54dffa5661dfb50b93b4fbf1fe92ec93566efd89424", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling unicode-ident v1.0.1
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling serde v1.0.137
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking parking_lot_core v0.9.3
[INFO] [stderr]     Checking mio v0.8.4
[INFO] [stderr]     Checking tracing-core v0.1.28
[INFO] [stderr]    Compiling serde_json v1.0.82
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]     Checking futures-io v0.3.24
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking unicode-bidi v0.3.8
[INFO] [stderr]     Checking ahash v0.7.6
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling once_cell v1.12.0
[INFO] [stderr]     Checking cpufeatures v0.2.2
[INFO] [stderr]    Compiling bytes v1.1.0
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]     Checking hashbrown v0.12.1
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking regex-syntax v0.6.26
[INFO] [stderr]     Checking http v0.2.8
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling smallvec v1.9.0
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling paste v1.0.7
[INFO] [stderr]    Compiling rustls v0.20.6
[INFO] [stderr]    Compiling itoa v1.0.2
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling lock_api v0.4.6
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling thiserror v1.0.37
[INFO] [stderr]    Compiling time-macros v0.2.4
[INFO] [stderr]     Checking unicode-normalization v0.1.21
[INFO] [stderr]     Checking block-buffer v0.10.2
[INFO] [stderr]     Checking crypto-common v0.1.3
[INFO] [stderr]     Checking digest v0.10.5
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking universal-hash v0.4.1
[INFO] [stderr]     Checking aead v0.4.3
[INFO] [stderr]    Compiling cookie v0.16.0
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking polyval v0.5.3
[INFO] [stderr]     Checking sha2 v0.10.2
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling pkg-config v0.3.26
[INFO] [stderr]     Checking ctr v0.8.0
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking hkdf v0.12.3
[INFO] [stderr]     Checking local-waker v0.1.3
[INFO] [stderr]     Checking ghash v0.4.4
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.10
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]     Checking aes-gcm v0.9.4
[INFO] [stderr]     Checking miniz_oxide v0.5.3
[INFO] [stderr]     Checking actix-utils v3.0.0
[INFO] [stderr]     Checking actix-service v2.0.2
[INFO] [stderr]    Compiling bytestring v1.1.0
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]    Compiling socket2 v0.4.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking regex v1.5.6
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling zstd-sys v2.0.1+zstd.1.5.2
[INFO] [stderr]    Compiling openssl-sys v0.9.79
[INFO] [stderr]    Compiling firestorm v0.5.1
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling async-trait v0.1.56
[INFO] [stderr]    Compiling tokio v1.19.2
[INFO] [stderr]     Checking flate2 v1.0.24
[INFO] [stderr]     Checking brotli v3.3.4
[INFO] [stderr]     Checking sha1 v0.10.1
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking time v0.3.11
[INFO] [stderr]    Compiling instant v0.1.12
[INFO] [stderr]    Compiling openssl v0.10.44
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling anyhow v1.0.65
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking event-listener v2.5.2
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling percent-encoding v2.1.0
[INFO] [stderr]    Compiling futures-sink v0.3.21
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]    Compiling nom v7.1.1
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking http-body v0.4.5
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]     Checking tower-service v0.3.2
[INFO] [stderr]    Compiling ryu v1.0.10
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling crc-catalog v2.1.0
[INFO] [stderr]    Compiling dirs v4.0.0
[INFO] [stderr]    Compiling crc v3.0.0
[INFO] [stderr]    Compiling futures-intrusive v0.4.0
[INFO] [stderr]    Compiling rustls-pemfile v1.0.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]     Checking webpki v0.22.0
[INFO] [stderr]     Checking sct v0.7.0
[INFO] [stderr]    Compiling sha-1 v0.10.0
[INFO] [stderr]     Checking webpki-roots v0.22.3
[INFO] [stderr]    Compiling hashlink v0.8.0
[INFO] [stderr]    Compiling stringprep v0.1.2
[INFO] [stderr]    Compiling atoi v1.0.0
[INFO] [stderr]    Compiling md-5 v0.10.1
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling uuid v1.1.2
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling whoami v1.2.1
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking ucd-trie v0.1.3
[INFO] [stderr]    Compiling unicode-segmentation v1.9.0
[INFO] [stderr]     Checking arc-swap v1.5.1
[INFO] [stderr]     Checking pest v2.1.3
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]     Checking publicsuffix v2.2.3
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling actix-rt v2.7.0
[INFO] [stderr]    Compiling tokio-stream v0.1.9
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking tracing-log v0.1.3
[INFO] [stderr]     Checking sharded-slab v0.1.4
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]     Checking thread_local v1.1.4
[INFO] [stderr]    Compiling claim v0.5.0
[INFO] [stderr]    Compiling substring v1.4.5
[INFO] [stderr]     Checking base64ct v1.5.3
[INFO] [stderr]     Checking http-range v0.1.5
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking askama_escape v0.10.3
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking cache-padded v1.2.0
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking concurrent-queue v1.2.4
[INFO] [stderr]     Checking blake2 v0.10.5
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking pathdiff v0.2.1
[INFO] [stderr]     Checking password-hash v0.4.2
[INFO] [stderr]     Checking ipnet v2.5.0
[INFO] [stderr]     Checking keccak v0.1.2
[INFO] [stderr]    Compiling http-types v2.12.0
[INFO] [stderr]     Checking fastrand v1.8.0
[INFO] [stderr]     Checking zeroize v1.5.6
[INFO] [stderr]     Checking async-channel v1.7.1
[INFO] [stderr]     Checking sha3 v0.10.6
[INFO] [stderr]     Checking futures-lite v1.12.0
[INFO] [stderr]     Checking deadpool-runtime v0.1.2
[INFO] [stderr]     Checking argon2 v0.4.1
[INFO] [stderr]     Checking retain_mut v0.1.9
[INFO] [stderr]     Checking infer v0.2.3
[INFO] [stderr]     Checking linkify v0.9.0
[INFO] [stderr]     Checking fake v2.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.137
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.22
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.37
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling actix-macros v0.2.3
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling tokio-rustls v0.23.4
[INFO] [stderr]    Compiling sqlx-rt v0.6.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.11
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]    Compiling actix-web-lab-derive v0.16.0
[INFO] [stderr]     Checking tracing v0.1.35
[INFO] [stderr]     Checking tracing-subscriber v0.3.14
[INFO] [stderr]     Checking pin-project v1.0.11
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking local-channel v0.1.3
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking tokio-util v0.7.3
[INFO] [stderr]     Checking actix-server v2.1.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking deadpool v0.9.5
[INFO] [stderr]     Checking h2 v0.3.13
[INFO] [stderr]     Checking actix-codec v0.5.0
[INFO] [stderr]     Checking combine v4.6.6
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking actix-router v0.5.0
[INFO] [stderr]     Checking either v1.7.0
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_html_form v0.1.1
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]     Checking ron v0.7.1
[INFO] [stderr]     Checking secrecy v0.8.0
[INFO] [stderr]     Checking serde_qs v0.8.5
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]     Checking csv v1.1.6
[INFO] [stderr]     Checking cookie_store v0.16.1
[INFO] [stderr]     Checking tracing-bunyan-formatter v0.3.3
[INFO] [stderr]     Checking config v0.13.1
[INFO] [stderr]     Checking validator v0.15.0
[INFO] [stderr]     Checking serde-aux v3.1.0
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]    Compiling actix-web-codegen v4.0.1
[INFO] [stderr]     Checking sqlformat v0.1.8
[INFO] [stderr]     Checking hyper v0.14.20
[INFO] [stderr]     Checking sqlx-core v0.6.0
[INFO] [stderr]     Checking redis v0.21.6
[INFO] [stderr]     Checking hyper-rustls v0.23.0
[INFO] [stderr]     Checking wiremock v0.5.14
[INFO] [stderr]     Checking reqwest v0.11.11
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking actix-http v3.2.0
[INFO] [stderr]     Checking actix-web v4.1.0
[INFO] [stderr]    Compiling sqlx-macros v0.6.0
[INFO] [stderr]     Checking actix-files v0.6.2
[INFO] [stderr]     Checking tracing-actix-web v0.6.0
[INFO] [stderr]     Checking actix-web-flash-messages v0.4.2
[INFO] [stderr]     Checking actix-session v0.6.2
[INFO] [stderr]     Checking actix-web-lab v0.16.9
[INFO] [stderr]     Checking sqlx v0.6.0
[INFO] [stderr]     Checking zero2prod v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/authentication/password.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |       let row = sqlx::query!(
[INFO] [stdout]    |  _______________^
[INFO] [stdout] 24 | |         r#"
[INFO] [stdout] 25 | |         SELECT user_id, password_hash
[INFO] [stdout] 26 | |         FROM users
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | |         username,
[INFO] [stdout] 30 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/authentication/password.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |       let row = sqlx::query!(
[INFO] [stdout]    |  _______________^
[INFO] [stdout] 24 | |         r#"
[INFO] [stdout] 25 | |         SELECT user_id, password_hash
[INFO] [stdout] 26 | |         FROM users
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | |         username,
[INFO] [stdout] 30 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/authentication/password.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |       let row: Option<_> = sqlx::query!(
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 42 | |         r#"
[INFO] [stdout] 43 | |         SELECT user_id, password_hash FROM USERS 
[INFO] [stdout] 44 | |         WHERE username = $1
[INFO] [stdout] 45 | |         "#,
[INFO] [stdout] 46 | |         credentials.username
[INFO] [stdout] 47 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/authentication/password.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |       let row: Option<_> = sqlx::query!(
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 42 | |         r#"
[INFO] [stdout] 43 | |         SELECT user_id, password_hash FROM USERS 
[INFO] [stdout] 44 | |         WHERE username = $1
[INFO] [stdout] 45 | |         "#,
[INFO] [stdout] 46 | |         credentials.username
[INFO] [stdout] 47 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/authentication/password.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | /     sqlx::query!(
[INFO] [stdout] 117 | |         r#"
[INFO] [stdout] 118 | |         UPDATE users
[INFO] [stdout] 119 | |         SET password_hash = $1
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |         user_id
[INFO] [stdout] 124 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/authentication/password.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | /     sqlx::query!(
[INFO] [stdout] 117 | |         r#"
[INFO] [stdout] 118 | |         UPDATE users
[INFO] [stdout] 119 | |         SET password_hash = $1
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |         user_id
[INFO] [stdout] 124 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/admin/dashboard.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |       let row = sqlx::query!(
[INFO] [stdout]    |  _______________^
[INFO] [stdout] 48 | |             r#"
[INFO] [stdout] 49 | |             SELECT username
[INFO] [stdout] 50 | |             FROM users
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |             user_id,
[INFO] [stdout] 54 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/admin/dashboard.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |       let row = sqlx::query!(
[INFO] [stdout]    |  _______________^
[INFO] [stdout] 48 | |             r#"
[INFO] [stdout] 49 | |             SELECT username
[INFO] [stdout] 50 | |             FROM users
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |             user_id,
[INFO] [stdout] 54 | |         )
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/newsletter.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 |       let rows = sqlx::query!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 87 | |         r#"
[INFO] [stdout] 88 | |         SELECT email
[INFO] [stdout] 89 | |         FROM subscriptions
[INFO] [stdout] 90 | |         WHERE status = 'confirmed'
[INFO] [stdout] 91 | |         "#,
[INFO] [stdout] 92 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/newsletter.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 86 |       let rows = sqlx::query!(
[INFO] [stdout]    |  ________________^
[INFO] [stdout] 87 | |         r#"
[INFO] [stdout] 88 | |         SELECT email
[INFO] [stdout] 89 | |         FROM subscriptions
[INFO] [stdout] 90 | |         WHERE status = 'confirmed'
[INFO] [stdout] 91 | |         "#,
[INFO] [stdout] 92 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | /     sqlx::query!(
[INFO] [stdout] 112 | |         r#"INSERT INTO subscription_tokens (subscription_token, subscriber_id)
[INFO] [stdout] 113 | |         VALUES ($1, $2)"#,
[INFO] [stdout] 114 | |         subscription_token,
[INFO] [stdout] 115 | |         subscriber_id
[INFO] [stdout] 116 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 | /     sqlx::query!(
[INFO] [stdout] 187 | |         r#"
[INFO] [stdout] 188 | |             INSERT INTO subscriptions (id, email, name, subscribed_at, status)
[INFO] [stdout] 189 | |             VALUES ($1, $2, $3, $4, 'pending_confirmation')
[INFO] [stdout] ...   |
[INFO] [stdout] 194 | |         Utc::now()
[INFO] [stdout] 195 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | /     sqlx::query!(
[INFO] [stdout] 112 | |         r#"INSERT INTO subscription_tokens (subscription_token, subscriber_id)
[INFO] [stdout] 113 | |         VALUES ($1, $2)"#,
[INFO] [stdout] 114 | |         subscription_token,
[INFO] [stdout] 115 | |         subscriber_id
[INFO] [stdout] 116 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscriptions_confirm.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | /     sqlx::query!(
[INFO] [stdout] 40 | |         r#"UPDATE subscriptions SET status = 'confirmed' WHERE id = $1"#,
[INFO] [stdout] 41 | |         subscriber_id,
[INFO] [stdout] 42 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]    --> src/routes/subscriptions.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 | /     sqlx::query!(
[INFO] [stdout] 187 | |         r#"
[INFO] [stdout] 188 | |             INSERT INTO subscriptions (id, email, name, subscribed_at, status)
[INFO] [stdout] 189 | |             VALUES ($1, $2, $3, $4, 'pending_confirmation')
[INFO] [stdout] ...   |
[INFO] [stdout] 194 | |         Utc::now()
[INFO] [stdout] 195 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscriptions_confirm.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |       let result = sqlx::query!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 59 | |         "SELECT subscriber_id FROM subscription_tokens \
[INFO] [stdout] 60 | |         WHERE subscription_token = $1",
[INFO] [stdout] 61 | |         subscription_token,
[INFO] [stdout] 62 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscriptions_confirm.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | /     sqlx::query!(
[INFO] [stdout] 40 | |         r#"UPDATE subscriptions SET status = 'confirmed' WHERE id = $1"#,
[INFO] [stdout] 41 | |         subscriber_id,
[INFO] [stdout] 42 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: error communicating with database: Cannot assign requested address (os error 99)
[INFO] [stdout]   --> src/routes/subscriptions_confirm.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |       let result = sqlx::query!(
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 59 | |         "SELECT subscriber_id FROM subscription_tokens \
[INFO] [stdout] 60 | |         WHERE subscription_token = $1",
[INFO] [stdout] 61 | |         subscription_token,
[INFO] [stdout] 62 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::authentication::basic_authentication`
[INFO] [stdout]  --> src/routes/newsletter.rs:8:51
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::authentication::{validate_credentials, basic_authentication, AuthError};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^^^^^^^ no `basic_authentication` in `authentication`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::authentication::basic_authentication`
[INFO] [stdout]  --> src/routes/newsletter.rs:8:51
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::authentication::{validate_credentials, basic_authentication, AuthError};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^^^^^^^ no `basic_authentication` in `authentication`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `reject_anonymous_user` in this scope
[INFO] [stdout]    --> src/startup.rs:116:31
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 .wrap(from_fn(reject_anonymous_user))
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `reject_anonymous_users`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/authentication/middleware.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout] 29  | pub async fn reject_anonymous_users(mut req: ServiceRequest, next: Next<impl MessageBody>,) -> Result<ServiceResponse<impl MessageBody>, actix_web::Error...
[INFO] [stdout]     | ---------------------------------------------------------------------------------------------------------------------------------------------------------- similarly named function `reject_anonymous_users` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]   --> src/routes/mod.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout] 2  | mod health_check;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^ but the private item here shadows it
[INFO] [stdout] ...
[INFO] [stdout] 10 | pub use health_check::*;
[INFO] [stdout]    |         --------------- the name `health_check` in the type namespace is supposed to be publicly re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(hidden_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]   --> src/routes/mod.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout] 3  | mod home;
[INFO] [stdout]    | ^^^^^^^^^ but the private item here shadows it
[INFO] [stdout] ...
[INFO] [stdout] 11 | pub use home::*;
[INFO] [stdout]    |         ------- the name `home` in the type namespace is supposed to be publicly re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]   --> src/routes/mod.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout] 4  | mod login;
[INFO] [stdout]    | ^^^^^^^^^^ but the private item here shadows it
[INFO] [stdout] ...
[INFO] [stdout] 12 | pub use login::*;
[INFO] [stdout]    |         -------- the name `login` in the type namespace is supposed to be publicly re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/routes/subscriptions.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::authentication::reject_anonymous_users`
[INFO] [stdout]   --> src/startup.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::authentication::reject_anonymous_users;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `reject_anonymous_user` in this scope
[INFO] [stdout]    --> src/startup.rs:116:31
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 .wrap(from_fn(reject_anonymous_user))
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^ help: a function with a similar name exists: `reject_anonymous_users`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/authentication/middleware.rs:29:1
[INFO] [stdout]     |
[INFO] [stdout] 29  | pub async fn reject_anonymous_users(mut req: ServiceRequest, next: Next<impl MessageBody>,) -> Result<ServiceResponse<impl MessageBody>, actix_web::Error...
[INFO] [stdout]     | ---------------------------------------------------------------------------------------------------------------------------------------------------------- similarly named function `reject_anonymous_users` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]   --> src/routes/mod.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout] 2  | mod health_check;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^ but the private item here shadows it
[INFO] [stdout] ...
[INFO] [stdout] 10 | pub use health_check::*;
[INFO] [stdout]    |         --------------- the name `health_check` in the type namespace is supposed to be publicly re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(hidden_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]   --> src/routes/mod.rs:3:1
[INFO] [stdout]    |
[INFO] [stdout] 3  | mod home;
[INFO] [stdout]    | ^^^^^^^^^ but the private item here shadows it
[INFO] [stdout] ...
[INFO] [stdout] 11 | pub use home::*;
[INFO] [stdout]    |         ------- the name `home` in the type namespace is supposed to be publicly re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]   --> src/routes/mod.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout] 4  | mod login;
[INFO] [stdout]    | ^^^^^^^^^^ but the private item here shadows it
[INFO] [stdout] ...
[INFO] [stdout] 12 | pub use login::*;
[INFO] [stdout]    |         -------- the name `login` in the type namespace is supposed to be publicly re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/routes/subscriptions.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::Utc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::authentication::reject_anonymous_users`
[INFO] [stdout]   --> src/startup.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::authentication::reject_anonymous_users;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/authentication/middleware.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             next.call(req).await
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<ServiceResponse<...>, ...>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<ServiceResponse<impl MessageBody>, actix_web::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/authentication/middleware.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             next.call(req).await
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<ServiceResponse<...>, ...>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<ServiceResponse<impl MessageBody>, actix_web::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/authentication/middleware.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | /     match session.get_user_id().map_err(e500)? {
[INFO] [stdout] 36 | |         Some(user_id) => {
[INFO] [stdout] 37 | |             req.extensions_mut().insert(UserId(user_id));
[INFO] [stdout] 38 | |             next.call(req).await
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |             Err(InternalError::from_response(e, response).into())
[INFO] [stdout]    | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<_, _>`
[INFO] [stdout] 44 | |         }
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____- expected this to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<_, _>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Err(InternalError::from_response(e, response).into());
[INFO] [stdout]    |                                                                  +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 45 |     };
[INFO] [stdout]    |      +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 43 |             return Err(InternalError::from_response(e, response).into());
[INFO] [stdout]    |             ++++++                                                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/authentication/middleware.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | /     match session.get_user_id().map_err(e500)? {
[INFO] [stdout] 36 | |         Some(user_id) => {
[INFO] [stdout] 37 | |             req.extensions_mut().insert(UserId(user_id));
[INFO] [stdout] 38 | |             next.call(req).await
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |             Err(InternalError::from_response(e, response).into())
[INFO] [stdout]    | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Result<_, _>`
[INFO] [stdout] 44 | |         }
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____- expected this to be `()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected unit type `()`
[INFO] [stdout]                    found enum `Result<_, _>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Err(InternalError::from_response(e, response).into());
[INFO] [stdout]    |                                                                  +
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]    |
[INFO] [stdout] 45 |     };
[INFO] [stdout]    |      +
[INFO] [stdout] help: you might have meant to return this value
[INFO] [stdout]    |
[INFO] [stdout] 43 |             return Err(InternalError::from_response(e, response).into());
[INFO] [stdout]    |             ++++++                                                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> src/authentication/password.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let (expected_password_hash, user_id) = match row {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::marker::Sized` is not implemented for `str`
[INFO] [stdout]    = note: all local variables must have a statically known size
[INFO] [stdout]    = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> src/authentication/password.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let (expected_password_hash, user_id) = match row {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::marker::Sized` is not implemented for `str`
[INFO] [stdout]    = note: all local variables must have a statically known size
[INFO] [stdout]    = help: unsized locals are gated as an unstable feature
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `spawn_app` in this scope
[INFO] [stdout]   --> src/routes/admin/password/post.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let app = spawn_app().await;
[INFO] [stdout]    |               ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `assert_is_redirect_to` in this scope
[INFO] [stdout]   --> src/routes/admin/password/post.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     assert_is_redirect_to(&response, "/admin/password");
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]  --> src/routes/admin/dashboard.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]  --> src/routes/admin/dashboard.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::Context;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 14 previous errors; 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 16 previous errors; 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zero2prod` (lib) due to 15 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `zero2prod` (lib test) due to 17 previous errors; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "bb5d4ffff9ca5dbfc7bcd54dffa5661dfb50b93b4fbf1fe92ec93566efd89424", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bb5d4ffff9ca5dbfc7bcd54dffa5661dfb50b93b4fbf1fe92ec93566efd89424", kill_on_drop: false }`
[INFO] [stdout] bb5d4ffff9ca5dbfc7bcd54dffa5661dfb50b93b4fbf1fe92ec93566efd89424
